#ifndef _TaskQueue_H_
#define _TaskQueue_H_

#include "Condition.hpp"
#include "MutexLock.hpp"
#include <queue>
using std::queue;

namespace wd{


class MutexLock;
class Condition;

class TaskQueue{

public:
    TaskQueue(int);
    ~TaskQueue();

    bool empty();
    bool full();
    void push(int );
    int pop();

private:
    queue<int> _que;
    int _queSize;
    MutexLock _mutex;
    Condition _notFull;
    Condition _notEmpty;
};

}
#endif

